﻿using System.Collections.Generic;

namespace ClickLand.CorporacionPlaza.Comunes.Entidades
{
    /// <summary> Clase que representa la entidad cliente en el sistema </summary>
    public class Cliente
    {
        #region Atributos

        /// <summary> Identificador del cliente </summary>
        private long _id;


        /// <summary> Nombre del cliente </summary>
        private string _nombre;


        /// <summary> Documento de identificacion </summary>
        private string _documentoIdentificacion;


        /// <summary> Numero del celular del cliente </summary>
        private string _numeroCelular;


        /// <summary> numero del telefono de oficina del cliente </summary>
        private string _numeroOficina;


        /// <summary> Correo electronico del cliente </summary>
        private string _correo;


        /// <summary> Estado del cliente </summary>
        /// <remarks>1 si esta activo 0 si esta inactivo</remarks>
        private int? _estado;


        /// <summary> Nombre del reponsable numero 1 </summary>
        private string _responsable1;


        /// <summary> Nombre del responsable numero 2 </summary>
        ///<remarks>Es nullable</remarks>
        private string _responsable2;

        
        /// <summary> Nombre del responsable numero 3 </summary>
        /// <remarks>es nullable</remarks>
        private string _responsable3;


        /// <summary> Juridico o Natural </summary>
        private string _tipo;

        /// <summary> Lista de contratos del cliente </summary>
        private IList<Contrato> _contratos;

        #endregion

        #region Propiedades

        /// <summary> Identificador del cliente </summary>
        public virtual long Id
        {
            get { return _id; }
            set { _id = value; }
        }


        /// <summary> Nombre del cliente </summary>
        public virtual string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        
        /// <summary> Documento de identificacion </summary>
        public virtual string DocumentoIdentificacion
        {
            get { return _documentoIdentificacion; }
            set { _documentoIdentificacion = value; }
        }


        /// <summary> Numero del celular del cliente </summary>
        public virtual string NumeroCelular
        {
            get { return _numeroCelular; }
            set { _numeroCelular = value; }
        }


        /// <summary> numero del telefono de oficina del cliente </summary>
        public virtual string NumeroOficina
        {
            get { return _numeroOficina; }
            set { _numeroOficina = value; }
        }


        /// <summary> Correo electronico del cliente </summary>
        public virtual string Correo
        {
            get { return _correo; }
            set { _correo = value; }
        }


        /// <summary> Estado del cliente </summary>
        /// <remarks>1 si esta activo 0 si esta inactivo</remarks>
        public virtual int? Estado
        {
            get { return _estado; }
            set { _estado = value; }
        }


        /// <summary> Nombre del reponsable numero 1 </summary>
        public virtual string Responsable1
        {
            get { return _responsable1; }
            set { _responsable1 = value; }
        }


        /// <summary> Nombre del responsable numero 2 </summary>
        ///<remarks>Es nullable</remarks>
        public virtual string Responsable2
        {
            get { return _responsable2; }
            set { _responsable2 = value; }
        }


        /// <summary> Nombre del responsable numero 3 </summary>
        /// <remarks>es nullable</remarks>
        public virtual string Responsable3
        {
            get { return _responsable3; }
            set { _responsable3 = value; }
        }


        /// <summary>Lista de contratos del cliente </summary>
        public virtual IList<Contrato> Contratos
        {
            get { return _contratos; }
            set { _contratos = value; }
        }


        /// <summary> Juridico o Natural </summary>
        public virtual string Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }

        #endregion
       
    }
}
